<?php

class ShicraBN extends uEstratigraficaBN {
	
	public function crearShicra(Uestratigrafica $objUE, $listaCaracteristicas, 
						$listaAberturas, $listaUbicacionNudos, $listaPiedras, 
						$listaOtrosMateriales, $listaPesos) 
	
	{
		
		$resultado = false;
		
		try {
		
			$pk = $this->generarPK();
			
			$this->validarCodUe($objUE->getCodUEText(), $pk);
			 
			$objUE->setCodue($pk);
			
			$objUE->setCodTipoue(self::TIPO_SHICRA);
			
			$resultado = $objUE->save();
			
			if($resultado){
				
				$this->setCodUe($pk);
				
				$this->crearBaseUE();
				
				// grabar lista de caracteristicas
				$oComposicionBN = new ComposicionBN();			
				foreach($listaCaracteristicas as $oItem) {
					$oItem->setCodue($pk);
					$oComposicionBN->crearComposicion($oItem);
				}
				
				// grabar lista de aberturas
				$oComposicionBN = new ComposicionBN();			
				foreach($listaAberturas as $oItem) {
					$oItem->setCodue($pk);
					$oComposicionBN->crearComposicion($oItem);
				}	
	
				// grabar lista de piedras
				$oComposicionBN = new ComposicionBN();
				foreach($listaPiedras as $oItem) {
					$oItem->setCodue($pk);
					$oComposicionBN->crearComposicion($oItem);
				}
				
				// grabar lista de pesos
				$oComposicionBN = new ComposicionBN();
				foreach($listaPesos as $oItem) {
					$oItem->setCodue($pk);
					$oComposicionBN->crearComposicion($oItem);
				}
				
				// grabar lista de ubicacion de nudos
				$oUbicacionBN = new UbicacionNudosBN();
				foreach($listaUbicacionNudos as $oItem) {
					$oItem->setCodue($pk);
					$oUbicacionBN->crearUbicacionNudo($oItem);
				}
				
				// grabar lista de otros materiales
				$oComposicionBN = new ComposicionBN();
				foreach($listaOtrosMateriales as $oItem) {
					$oItem->setCodue($pk);
					$oComposicionBN->crearComposicion($oItem);
				}
					
				
			}
		
		}
		catch(Exception $e) {
			$this->mensaje = $e->getMessage();
			$resultado = false;
		}
		
		return $resultado;
		
	}
	
	
	public function actualizarShicra(Uestratigrafica $objUE, $listaCaracteristicas, 
						$listaAberturas, $listaUbicacionNudos, $listaPiedras, 
						$listaOtrosMateriales, $listaPesos) 
	
	{
		$resultado = false;
		
		try {
			
			$this->validarCodUe($objUE->getCodUEText(), $objUE->getCodue());
					
			$resultado = $objUE->save();
			
			$this->actualizarBaseUE();
			
			// eliminar composicion existente
			$oComposicionBN = new ComposicionBN();
			$oComposicionBN->eliminarComposicion($objUE->getCodue());
			
				
			// grabar lista de caracteristicas
			$oComposicionBN = new ComposicionBN();			
			foreach($listaCaracteristicas as $oItem) {
				$oItem->setCodue($objUE->getCodue());
				$oComposicionBN->crearComposicion($oItem);
			}
			
			// grabar lista de aberturas
			$oComposicionBN = new ComposicionBN();			
			foreach($listaAberturas as $oItem) {
				$oItem->setCodue($objUE->getCodue());
				$oComposicionBN->crearComposicion($oItem);
			}	
	
			// grabar lista de piedras
			$oComposicionBN = new ComposicionBN();
			foreach($listaPiedras as $oItem) {
				$oItem->setCodue($objUE->getCodue());
				$oComposicionBN->crearComposicion($oItem);
			}
			
			// grabar lista de pesos
			$oComposicionBN = new ComposicionBN();
			foreach($listaPesos as $oItem) {
				$oItem->setCodue($objUE->getCodue());
				$oComposicionBN->crearComposicion($oItem);
			}
			
			// grabar lista de ubicacion de nudos
			$oUbicacionBN = new UbicacionNudosBN();
			foreach($listaUbicacionNudos as $oItem) {
				$oItem->setCodue($objUE->getCodue());
				$oUbicacionBN->crearUbicacionNudo($oItem);
			}
			
			// grabar lista de otros materiales
			$oComposicionBN = new ComposicionBN();
			foreach($listaOtrosMateriales as $oItem) {
				$oItem->setCodue($objUE->getCodue());
				$oComposicionBN->crearComposicion($oItem);
			}
				
		} catch(Exception $e) {
			$this->mensaje = $e->getMessage();
			$resultado = false;
		}
		
		return $resultado;
	}
	
	public function eliminarDeposito($idDeposito) {
		
	}
	
}
?>